package com.ruoyi.admin.service.impl;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.admin.domain.MlGoodsDto;
import com.ruoyi.admin.domain.MlPromotionDto;
import com.ruoyi.admin.mapper.MlGoodsDtoMapper;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.admin.mapper.MlGoodsCategoryDtoMapper;
import com.ruoyi.admin.domain.MlGoodsCategoryDto;
import com.ruoyi.admin.service.IMlGoodsCategoryDtoService;

/**
 * 商品类别Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-03-18
 */
@Service
public class MlGoodsCategoryDtoServiceImpl extends ServiceImpl<MlGoodsCategoryDtoMapper, MlGoodsCategoryDto> implements IMlGoodsCategoryDtoService
{
    @Autowired
    private MlGoodsCategoryDtoMapper mlGoodsCategoryDtoMapper;

    /**
     * 查询商品类别
     * 
     * @param id 商品类别主键
     * @return 商品类别
     */
    @Override
    public MlGoodsCategoryDto selectMlGoodsCategoryDtoById(Long id)
    {
        return mlGoodsCategoryDtoMapper.selectMlGoodsCategoryDtoById(id);
    }

    /**
     * 查询商品类别列表
     * 
     * @param mlGoodsCategoryDto 商品类别
     * @return 商品类别
     */
    @Override
    public List<MlGoodsCategoryDto> selectMlGoodsCategoryDtoList(MlGoodsCategoryDto mlGoodsCategoryDto)
    {
        return mlGoodsCategoryDtoMapper.selectMlGoodsCategoryDtoList(mlGoodsCategoryDto);
    }

    /**
     * 新增商品类别
     * 
     * @param mlGoodsCategoryDto 商品类别
     * @return 结果
     */
    @Override
    public int insertMlGoodsCategoryDto(MlGoodsCategoryDto mlGoodsCategoryDto)
    {
        mlGoodsCategoryDto.setCreateTime(DateUtils.getNowDate());
        return mlGoodsCategoryDtoMapper.insertMlGoodsCategoryDto(mlGoodsCategoryDto);
    }

    /**
     * 修改商品类别
     * 
     * @param mlGoodsCategoryDto 商品类别
     * @return 结果
     */
    @Override
    public int updateMlGoodsCategoryDto(MlGoodsCategoryDto mlGoodsCategoryDto)
    {
        return mlGoodsCategoryDtoMapper.updateMlGoodsCategoryDto(mlGoodsCategoryDto);
    }

    /**
     * 批量删除商品类别
     * 
     * @param ids 需要删除的商品类别主键
     * @return 结果
     */
    @Override
    public int deleteMlGoodsCategoryDtoByIds(Long[] ids)
    {
//        for(Long id : ids){
//            if (mlGoodsCategoryDtoMapper.selectGoodsAndCategoryById(id)!= null&&mlGoodsCategoryDtoMapper.selectPromotionAndCategoryById(id)!= null){
//                if(id.equals(mlGoodsCategoryDtoMapper.selectGoodsAndCategoryById(id).getMlGoodsDto().getCategoryId())&&id.equals(mlGoodsCategoryDtoMapper.selectPromotionAndCategoryById(id).getMlPromotionDto().getCategoryId())){
//                    return 0;
//                }
//                if((mlGoodsCategoryDtoMapper.selectPromotionAndCategoryById(id).getMlPromotionDto().getSuitCategory()).equals(1)){
//                    if(id.equals(mlGoodsCategoryDtoMapper.selectPromotionAndCategoryById(id).getMlPromotionDto().getCategoryId())){
//                        return 0;
//                    }
//                }
//            }
//        }
        for (Long id : ids) {
            // 查询商品和促销活动信息
            MlGoodsCategoryDto goodsCategoryDto = mlGoodsCategoryDtoMapper.selectGoodsAndCategoryById(id);
            MlPromotionDto promotionDto = mlGoodsCategoryDtoMapper.selectPromotionAndCategoryById(id).getMlPromotionDto();

            // 检查是否有商品绑定该类别
            if (goodsCategoryDto != null && goodsCategoryDto.getMlGoodsDto() != null) {
                if (id.equals(goodsCategoryDto.getMlGoodsDto().getCategoryId())) {
                    return 0; // 如果有商品绑定该类别，不允许删除
                }
            }

            // 检查是否有促销活动绑定该类别
            if (promotionDto != null && promotionDto!= null) {
                MlPromotionDto promotionDto1 = promotionDto;

                // 如果 suitCategory = 1，检查 categoryId 是否匹配
                if (promotionDto.getSuitCategory() != null && promotionDto.getSuitCategory().equals(1)) {
                    if (id.equals(promotionDto.getCategoryId())) {
                        return 0; // 如果有促销活动绑定该类别，不允许删除
                    }
                }
            }
        }
        return mlGoodsCategoryDtoMapper.deleteMlGoodsCategoryDtoByIds(ids);
    }

    /**
     * 删除商品类别信息
     * 
     * @param id 商品类别主键
     * @return 结果
     */
    @Override
    public int deleteMlGoodsCategoryDtoById(Long id)
    {
        return mlGoodsCategoryDtoMapper.deleteMlGoodsCategoryDtoById(id);
    }

//    @Override
//    public MlGoodsCategoryDto selectAllById(Long id) {
//        return mlGoodsCategoryDtoMapper.selectAllById(id);
//    }
}
